// 先抄写，然后再去慢慢理解

var url;

function newUser() {
    $('#dlg').dialog('open',true).dialog('setTitle', 'New User');
    $('#fm').form('clear');
    url = 'newUsers';  //这里是给全局变量赋值
}

function editUser() {
    var row = $('#dg').datagrid('getSelected');
    if (row) {
        $('#dlg').dialog('open').dialog('setTitle', 'edit User');
        /*
         下面是将 row里面包含的数据，放到form里面
        */
        $('#fm').form('load',row);
        /*
          ?的作用：
            标记URL参数部分的开始‌
            表示后续内容是键值对形式的参数（如id1=value）‌
         参数格式：
            单个参数：?key=value（如?id=123）‌
            多个参数：用&连接（如?id=123&name=test）‌

        */
        url = 'editUser?id=' + $('#dg').datagrid('getRowIndex',row);
    }
}

/**********************************************************************************/

function OnSubmitCallback() {
    var isvalid=$(this).form('validate');

    if (! isvalid) {
        /*
          这里表示表单无效
        */
        $.messager.alert({title:'invalid',msg:'invalid',icon:'error'});
    }
    return isvalid;
}

function SuccessCallback(result) {
    /*
        下面这段代码 这段代码用于将 JSON 格式的字符串转换为 JavaScript 对象
    */
    var result = eval('(' + result + ')');
    if (result.success) {
        $('#dlg').dialog('close');  // close the dialog
        $('#dg').datagrid('reload');  // reload the user data  其实就是向服务器请求数据
    } else {
        $.messager.show({title: 'Error', msg: result.msg});
    }
}


function saveUser() {
    $('#fm').form('submit', {
        /*
             请求的URL地址
        */
        url: url,
        /*
            提交之前的回调函数
        */
        onSubmit: OnSubmitCallback,
        /*
            提交成功后的回调函数
        */
        success: SuccessCallback,

    });
}

/**********************************************************************************/
function ConfirmPostCallback(result) {
    if (result.success)
    {
        $('#dg').datagrid('reload');    // reload the user data
    }
    else
    {
        $.messager.show({title: 'Error', msg: result.msg});
    }
}


function removeUser() {
    var row = $('#dg').datagrid('getSelected');

    if (row) {
        $.messager.confirm('Confirm', 'Are you sure you want to remove this user?',function (r) {
            if (r) {
                var rowId= $('#dg').datagrid('getRowIndex',row);
                $.post('removeUser',{id: rowId}, ConfirmPostCallback,'json');
            }
        })
    }
}

/*
  这说明一下 url 和 method 的区别

  当使用post时 负载参数没有在url里面，而是在负载参数里面  但是url里面也可以带参数
  当使用get时   负载参数在url里面，
*/

